package com.bonc.ioc.dao;

import com.bonc.ioc.model.CollectionInfo;
import com.bonc.ioc.vo.CollectionVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.HashMap;
import java.util.List;

/**
 * 收藏
 * @author ZhangXu
 * @date 2021/3/17 15:01
 */
@Mapper
public interface CollectionDao {

    /**
     * 添加收藏
     * @param param 用户id, 资源类型, 资源id
     * @return
     */
    Integer addCollection(CollectionVo param);

    /**
     * 收藏列表分页查询
     * @param map 用户id, 关键字, 查询时段
     * @return 收藏列表
     */
    List<CollectionInfo> selectCollectionListByPage(HashMap<String, Object> map);

    /**
     * 查询用户是否收藏过该资源
     * @param param 用户id, 资源类型, 资源id
     * @return 收藏记录id
     */
    CollectionInfo queryCollectionByDoubleId(CollectionVo param);

    /**
     * 查询资源收藏量
     * @param id 资源id
     * @return
     */
    Long queryCollections(Long id);

    /**
     * 查询资源是否已被用户收藏
     * @param userId 用户id
     * @param id 资源id
     * @return 0, 1
     */
    Integer queryIsCollection(@Param("userId") String userId, @Param("id") Long id);

    /**
     * 收藏记录 逻辑删除
     * @param param 收藏id
     * @return
     */
    Integer updateCollectionTombstone(CollectionVo param);

    /**
     * 收藏记录 逻辑删除 取消
     * @param param 收藏id
     * @return
     */
    Integer updateCollectionEnable(CollectionVo param);

    /**
     * 收藏记录 物理删除
     * @param param 收藏id
     * @return
     */
    Integer deleteCollection(CollectionVo param);
}
